package cn.nn200433.mqtt.core;

import cn.hutool.core.util.CharsetUtil;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.MqttMessage;

/**
 * 消息日志工具类
 *
 * @author nn200433
 * @date 2021-07-26 06:05:42
 */
@Slf4j
public class MsgLogUtil {

    /**
     * 信息
     *
     * @param topic   主题
     * @param qos     qos
     * @param message 消息
     * @return
     * @throws Exception 异常
     * @author nn200433
     */
    public static void info(String topic, Integer qos, MqttMessage message) throws Exception {
        log.debug("-------------------------------------");
        log.debug("|\t主题：{} ", topic);
        log.debug("|\tQos：{} ", qos);
        log.debug("|\t消息：{} ", new String(message.getPayload(), CharsetUtil.UTF_8));
        log.debug("-------------------------------------");
    }

    /**
     * 调试信息
     *
     * @param topic   主题
     * @param qos     qos
     * @param message 消息
     * @return
     * @throws Exception 异常
     * @author nn200433
     */
    public static void debug(String topic, Integer qos, MqttMessage message) throws Exception {
        log.debug("-------------------------------------");
        log.debug("|\t主题：{} ", topic);
        log.debug("|\tQos：{} ", qos);
        log.debug("|\t消息：{} ", new String(message.getPayload(), CharsetUtil.UTF_8));
        log.debug("-------------------------------------");
    }

    /**
     * 信息
     *
     * @param topic 主题
     * @param qos   qos
     * @param msg   消息
     * @return
     * @throws Exception 异常
     * @author nn200433
     */
    public static void info(String topic, Integer qos, String msg) throws Exception {
        log.debug("-------------------------------------");
        log.debug("|\t主题：{} ", topic);
        log.debug("|\tQos：{} ", qos);
        log.debug("|\t消息：{} ", msg);
        log.debug("-------------------------------------");
    }

    /**
     * 调试信息
     *
     * @param topic 主题
     * @param qos   qos
     * @param msg   消息
     * @return
     * @throws Exception 异常
     * @author nn200433
     */
    public static void debug(String topic, Integer qos, String msg) throws Exception {
        log.debug("-------------------------------------");
        log.debug("|\t主题：{} ", topic);
        log.debug("|\tQos：{} ", qos);
        log.debug("|\t消息：{} ", msg);
        log.debug("-------------------------------------");
    }

}
